package javathinking.chapter5;

public class Person {
    public void eat(Apple apple) {
        Apple peeled = apple.getPeeled();
        System.out.println("Yummy");
    }
}

class Peeler {
    /**
     * 由于某些原因而必须放在Apple外部的操作，也许是因为该外部方法要应用于许多不同的类，而你却不想重复这些代码
     */
    static Apple peel(Apple apple) {
        return apple;
    }
}

class Apple {
    Apple getPeeled() {
        return Peeler.peel(this);
    }
}

class PassingThis {
    public static void main(String[] args) {
        new Person().eat(new Apple());
    }
}